An event is a struct that is passed through the dispatcher. It is used to pass data to callbacks. It also contains methods to stop and consume the event. This is the backbone of the signal system.